package com.wanxi.web.service.product;

import com.wanxi.product.service.api.query.admin.SkuQuery;
import com.wanxi.product.service.api.query.admin.TagQuery;
import com.wanxi.product.service.api.query.admin.TypeQuery;
import com.wanxi.product.service.api.result.CommonResult;
import com.wanxi.product.service.api.vo.admin.*;
import com.wanxi.product.service.api.vo.admin.TypeAddInVo;
import com.wanxi.product.service.api.vo.admin.TypeUpdateInVo;

/**
 * ClassName: ProductAdminWebService
 * Description:
 * date: 2022/1/13 10:38
 *
 * @author lxl
 * @version 1.0
 * @since JDK 1.8
 */
public interface ProductAdminWebService {
    /**
     *管理员添加分类
     * @param typeAddInVo
     * @return
     */
    CommonResult<Long> adminAddType(TypeAddInVo typeAddInVo);

    /**
     * 管理员获取分类列表
     * @param typeQuery
     * @return
     */
    CommonResult adminFindAllType(TypeQuery typeQuery);

    /**
     * 管理员根据id查询分类
     * @param id
     * @return
     */
    CommonResult adminFindTypeById(Long id);

    /**
     * 管理员修改分类
     * @param typeUpdateInVo
     * @return
     */
    CommonResult adminUpdateType(TypeUpdateInVo typeUpdateInVo);

    /**
     * 删除分类
     * @param id
     * @return
     */
    CommonResult adminDeleteType( Long id);

    /**
     * 获取sku列表
     * @param skuQuery
     * @return
     */
    CommonResult adminFindAllSku(SkuQuery skuQuery);

    /**
     * 修改sku状态
     * @param skuUpdateInVo
     * @return
     */
    CommonResult adminUpdateSku(SkuUpdateInVo skuUpdateInVo);

    /**
     * 删除sku
     * @param id
     * @return
     */
    CommonResult adminDeleteSkuById( Long id);

    /**
     * 添加标签
     * @param tagAddInVo
     * @return
     */
    CommonResult adminAddTag( TagAddInVo tagAddInVo);

    /**
     * 获取标签列表
     * @param tagQuery
     * @return
     */
    CommonResult adminFindTagAll( TagQuery tagQuery);

    /**
     * 逻辑删除标签
     * @param tagId
     * @return
     */
    CommonResult adminDeleteTagById( Long tagId);
}
